//#include<string>
//#include<vector>
//#include<iostream>
//using namespace std;
//
//int vis[501][501] = { 0 };
//int n = 21, m = 3;
//int dx[2] = { 0,1 };
//int dy[2] = { 1,0 };
//int ret = 0;
//int bx = 20, by = 20;
//int mx[9] = { 0,+2,+1,-1,-2,-2,-1,+1,+2 };
//int my[9] = { 0,+1,+2,+2,+1,-1,-2,-2,-1 };
////
////void dfs(vector<vector<int>>& chess ,int i,int j) {
////	
////	if (chess[i][j] == 1) return;
////	if (chess[i][j] == 2) {
////		ret++;
////		return;
////	}
////
////	for (int k = 0; k < 2; k++)
////	{
////	    int a = i + dx[k], b = j + dy[k];
////	    if (a >= 0 && a <= bx && b >= 0 && b <= by )
////	    {
////			//cout << a << " " << b<< "->";
////			dfs(chess, a, b);
////			
////	    }
////	}
////}
//
//int main()
//{
//	//vector<vector<int>> chess(21, vector<int>(21));
//	vector<vector<int>> dp(22, vector<int>(22));
//	int zi = 0, zj = 0;
//	bx = 6, by = 6;
//	int mi = 3, mj =3;
//	n = 22, m = 22;
//	for (int i = 0; i < 9; i++)
//	{
//		int a = mi + mx[i]+1, b = mj + my[i]+1;
//		if (a >= 0 && a < n && b >= 0 && b < m) dp[a][b] = -1;
//	}
//	//help(chess, zi, zj);
//	//chess[bx][by] = 2;
//	/*for (int i = 0; i < 21; i++)
//	{
//		for (int j = 0; j < 21; j++)
//		{
//			cout << chess[i][j] << " ";
//		}
//		cout << endl;
//	}*/
//	dp[0][1] = 1;
//	dp[bx+1][by+1] = 2;
//	/*for (int i = 1; i < 22; i++)
//	{
//		for (int j = 1; j < 22; j++)
//		{
//			
//			printf("%3d", dp[i][j]);
//		}
//		cout << endl;
//	}*/
//	for (int i = 1; i <= bx + 1; i++)
//	{
//		for (int j = 1; j <= by + 1; j++)
//		{
//			if (dp[i][j] != -1)
//			{
//				if (dp[i][j - 1] == -1 && dp[i-1][j] != -1)
//				{
//					dp[i][j] = dp[i-1][j ];
//				}
//				else if (dp[i - 1][j] == -1 && dp[i][j - 1] != -1)
//				{
//					dp[i][j] = dp[i ][j-1];
//				}
//				else if (dp[i - 1][j] != -1 && dp[i][j - 1] != -1)
//				{
//					dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
//				}
//			}
//		}
//
//	}
//	
//	/*cout << endl;
//	for (int i = 1; i <= bx+1; i++)
//	{
//		for (int j = 1; j <= by+1; j++)
//		{
//			printf("%3d", dp[i][j]);
//		}
//		cout << endl;
//	}*/
//	cout << dp[bx + 1][by + 1];
//	
//}
//
//
//
//
//
//
//
////int vis[501][501] = { 0 };
////int n = 21, m =3;
////int dx[2] = { 0,1 };
////int dy[2] = { 1,0 };
////int ret = 0;
////int bx = 20, by = 20;
////int mx[9] = { 0,+2,+1,-1,-2,-2,-1,+1,+2 };
////int my[9] = { 0,+1,+2,+2,+1,-1,-2,-2,-1 };
//////
//////void dfs(vector<vector<int>>& chess ,int i,int j) {
//////	
//////	if (chess[i][j] == 1) return;
//////	if (chess[i][j] == 2) {
//////		ret++;
//////		return;
//////	}
//////
//////	for (int k = 0; k < 2; k++)
//////	{
//////	    int a = i + dx[k], b = j + dy[k];
//////	    if (a >= 0 && a <= bx && b >= 0 && b <= by )
//////	    {
//////			//cout << a << " " << b<< "->";
//////			dfs(chess, a, b);
//////			
//////	    }
//////	}
//////}
////
////int main()
////{
////	vector<vector<int>> chess(21, vector<int>(21));
////	int zi = 0, zj = 0;
////	bx = 6, by = 6;
////	int mi = 3, mj = 3;
////	n = 21, m = 21;
////	for (int i = 0; i < 9; i++)
////	{
////		int a = mi + mx[i], b = mj + my[i];
////		if (a >= 0 && a < n && b >= 0 && b < m) chess[a][b] = 1;
////	}
////	//help(chess, zi, zj);
////	chess[bx][by] = 2;
////	for (int i = 0; i < 21; i++)
////	{
////		for (int j = 0; j < 21; j++)
////		{
////			cout << chess[i][j] << " ";
////		}
////		cout << endl;
////	}
////	
////	dfs(chess, zi, zj);
////
////	cout << ret;
////}